package DAO;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;

import model.Servicio;

public class ServicioDAO {
	private static EntityManagerFactory emf = Persistence
			.createEntityManagerFactory("baseHospital");

	public void guardar(Servicio p) {
		EntityManager em = ServicioDAO.emf.createEntityManager();
		EntityTransaction etx = em.getTransaction();
		etx.begin();
		em.merge(p);
		em.flush();
		etx.commit();
		em.close();
	}


	public Servicio getServicio(int i) {
		Servicio resultado;

		EntityManager em = ServicioDAO.emf.createEntityManager();
		Query consulta;
		consulta = em
				.createQuery("select p from Servicio p where p.id = :id");
		consulta.setParameter("id", i);
		resultado = (Servicio) consulta.getSingleResult();

		em.close();
		return resultado;
	}

	public List<Servicio> getServicios() {
		List<Servicio> resultado;

		EntityManager em = ServicioDAO.emf.createEntityManager();
		Query consulta;
		consulta = em
				.createQuery("select s from Servicio s");
		resultado = (List<Servicio>)consulta.getResultList();
		em.close();
		return resultado;
	}

	public void borrar(int id) {
		Servicio resultado;
		EntityManager em = ServicioDAO.emf.createEntityManager();
		EntityTransaction etx = em.getTransaction();
		etx.begin();
		Query consulta;
		consulta = em
				.createQuery("select p from Servicio p where p.id = :id");
		consulta.setParameter("id", id);
		resultado = (Servicio) consulta.getSingleResult();
		em.remove(resultado);
		etx.commit();
		em.close();

	}
}
